/*
    Dominate 3D - A cube-based game of life

    Copyright (C) 2007, Craig H. Miller (kidmosey@gmail.com)

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GAME_H__
#define __GAME_H__

#include "cube.h"
#include "font.h"
#include "color.h"

class Player;
class Cell;

namespace Game
{
    extern int DoLoop();
}

/*
class Game
{
public:
    // acceptable num_players: 2,3,4,6,8
    Game(int num_players, int number_of_subdivisions);

    HWND hWnd;
    int TimerHandle;

    ~Game();

    void Abort();

    bool IsFinished() const;

    void Render(float zoom = 5.0f);

    Player *GetCurrentPlayer();
    Player *GetPlayer(size_t i) const
    {
        assert(i < m_listPlayers.size());

        return m_listPlayers[i];
    }

    Player *GetLoser(Player *not_me) const;
    Player *GetWinner(Player *not_me) const;

    void IncrementPlayer();

    bool GameOver() const { return m_bGameOver; }
    void EndGame();

    Cell *m_currentSelection;
    Cube m_cube;

    // Handle mouse button events - updates the Mouse structure
    bool m_bRotating;
    CVector3D m_RotVelocity;

    void RenderHUD(const GLFont &font);

    int m_currentTime;

private:
    void RenderPlayerScore(int x, int y, Player *player, const GLFont &font);

    bool m_bFinished;
    bool m_bGameOver;
    std::vector<Player *> m_listPlayers;
    std::vector<Player *>::iterator m_currentPlayer;

    static Color s_playerColors[];
};
*/

#endif // __GAME_H__
